package com.msblearn.C_005;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.LockSupport;

/**
 * LockSupport可以停止某个线程（阻塞），
 * 也可以唤醒指定的线程
 * unpark先于park调用。即使park没有调用也可以调用unpark这样park没有作用。
 */
public class T08_LockSupport {

    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                System.out.println(i);
                if (i == 5) {
                    //停止（阻塞）
                    LockSupport.park();
                }
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        t1.start();
        LockSupport.unpark(t1);


        //继续运行
//        try {
//            TimeUnit.SECONDS.sleep(8);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
//        System.out.println("after 8 seconds");
//        LockSupport.unpark(t1);
    }
}
